package com.dcy.utils;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

import java.io.IOException;
import java.io.InputStream;

/*
这个类是一个工具类，是为了解决  使用MyBatis执行SQL语句之前需要准备的对象太多的问题
 */
public class MyBatisUtil {
    /*
    静态代码块只会执行一次，在加载类的时候执行，先于Main方法执行
     */
    private static SqlSessionFactory factory=null;
    static {
        String config="mybatis.xml";
        try {
            InputStream inputStream = Resources.getResourceAsStream(config);
            factory= new SqlSessionFactoryBuilder().build(inputStream);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    //下面创建方法来获取SqlSession对象
    public static SqlSession getSqlSession(){
        SqlSession sqlSession=null;
        if (factory!=null){//说明存在SqlSessionFactory对象
            sqlSession=factory.openSession(true);//自动提交事务
        }
        return sqlSession;
    }
}
